iT邦幫忙

DAY 11
0

安迪豬的Android學習筆記系列 第 11

我的Android筆記(13)

  • 分享至 

  • xImage
  •  

開發Android時的那些筆記...!!
Android已經幫我們架構好一個很好的框架
可以將所有的view都寫在xml裡,而盡可能的避免與controller耦合。
所以每當自己在覆寫View,在寫自己的View時,
如果有一些View的參數屬性要設定時,
除了可以動態呼叫函式外,利用AttributeSet也可以讓使用的人在xml裡面直接做設定喔。
**********************
首先,先創建**{project}\res\values\attr.xml**
並且在裡面建立自己的參數:

<resources>
    <declare-styleable name="myTheme">
        <attr name="style" format="integer" />
    </declare-styleable>
</resources>

Format的種類參考:
http://blog.csdn.net/mayingcai1987/article/details/6216655

基本上這樣就完成了。接下來就可以直接在xml用下列的方式給MyView做專屬的設定。
{project}\res\layout\layout.xml

<com.android.sample.MyView
        xmlns:mytheme="http://schemas.android.com/apk/res/com.android.sample"        
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        mytheme:style="1"
        />

當然,在MyView這裡要處理這些參數是拿來要做甚麼用的邏輯囉....
com.android.sample.MyView

public static final int DEFAULT_STYLE = 1;
private int mStyle = DEFAULT_STYLE;

public MyView(Context context, AttributeSet attrs) {
  super(context, attrs);
  TypedArray ta = context.obtainStyledAttributes(attrs,
    R.styleable.myTheme);
  mStyle = ta.getInt(R.styleable.myTheme_style,DEFAULT_STYLE);
  // 用mStyle去動態做一些UI設定
  ta.recycle();
}

以上是一個簡單的範例。

在寫View時,養成自訂義attr.xml是一個好的習慣,
這樣別人再使用這個View時,不但彈性變高了,可讀性也比較好。

AttributeSet
http://developer.android.com/reference/android/util/AttributeSet.html

TypedArray
http://developer.android.com/reference/android/content/res/TypedArray.html


上一篇
我的Android筆記(12)
下一篇
我的Android筆記(14)
系列文
安迪豬的Android學習筆記12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言